<?php
/**
+----------------------------------------------------------
 * 字符串截取，支持中文和其他编码
+----------------------------------------------------------
 * @static
 * @access public
+----------------------------------------------------------
 * @param string $str 需要转换的字符串
 * @param string $start 开始位置
 * @param string $length 截取长度
 * @param string $charset 编码格式
 * @param string $suffix 截断显示字符
+----------------------------------------------------------
 * @return string
+----------------------------------------------------------
 */
function msubstr($str, $start = 0, $length, $charset = "utf-8", $suffix = true)
{
    if (function_exists("mb_substr")) {
        if ($suffix && strlen($str) > $length)
            return mb_substr($str, $start, $length, $charset) . "...";
        else
            return mb_substr($str, $start, $length, $charset);
    } elseif (function_exists('iconv_substr')) {
        if ($suffix && strlen($str) > $length)
            return iconv_substr($str, $start, $length, $charset) . "...";
        else
            return iconv_substr($str, $start, $length, $charset);
    }
    $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
    $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
    preg_match_all($re[$charset], $str, $match);
    $slice = join("", array_slice($match[0], $start, $length));
    if ($suffix)
        return $slice . "…";
    return $slice;
}

/**
 * 获取插件名字
 * @param string $name 钩子名称
 *
 */

function hook($name)
{
    $map['name'] = array('eq', $name);
    $hook = D('Hook')->where($map)->find();
    $hook = explode(',', $hook['addons']);

    foreach ($hook as $value) {
        import($value, ADDONS_PATH . $value);
        if (class_exists($value)) {
            $obj = new $value();
            $obj->$name();
        }

    }
}

/**
 * 通过分类ID获取分类名字
 *
 * @param $cid 分类ID
 * @return mixed
 */
function getCategoryName($cid)
{
    static $catName = array();
    if (isset($catName[$cid])) {
        return $catName[$cid];
    }

    $dao = D("Category");
    $map['id'] = array('eq', $cid);
    $cateList = $dao->where($map)->getField("id,catname");
    $catName[$cid] = $cateList['catname'];

    return $catName[$cid];
}

/**
 * 检测验证码是否相同
 *
 * @param $verify　验证码
 * @return bool
 */
function check_verify($verify)
{
    if (md5($verify) != $_SESSION['verify']) {
        return false;
    } else {
        return true;
    }
}

/**
 * 检测是否登录
 *
 * @return int
 */

function is_login()
{
    $user = session('user_auth');
    if (empty($user)) {
        return 0;
    } else {
        return $user['uid'] ? $user['uid'] : 0;
    }
}